###################################################
### chunk number 1: 
###################################################
library(polysat)
options(width=60)


###################################################
### chunk number 2: 
###################################################
getwd()


###################################################
### chunk number 3: 
###################################################
simgen <- read.GeneMapper("GeneMapperExample.txt")


###################################################
### chunk number 4: 
###################################################
summary(simgen)
Samples(simgen)
Loci(simgen)
viewGenotypes(simgen, samples=paste("A", 1:20, sep=""), loci="loc1")
find.missing.gen(simgen)


###################################################
### chunk number 5: 
###################################################
Description(simgen) <- "Dataset for the tutorial"
PopNames(simgen) <- c("PopA", "PopB", "PopC")
PopInfo(simgen) <- rep(1:3, each = 100)
Usatnts(simgen) <- c(2, 3, 2)


###################################################
### chunk number 6: 
###################################################
rep(1:3, each = 100)
PopInfo(simgen)


###################################################
### chunk number 7: 
###################################################
Samples(simgen, populations = "PopA")


###################################################
### chunk number 8: 
###################################################
Usatnts(simgen)


###################################################
### chunk number 9: 
###################################################
simgen <- editGenotypes(simgen, maxalleles = 4)


###################################################
### chunk number 10: 
###################################################
simgen <- estimatePloidy(simgen)


###################################################
### chunk number 11: 
###################################################
Ploidies(simgen)[Ploidies(simgen) == 1] <- 2
Ploidies(simgen)[Ploidies(simgen) == 3] <- 4


###################################################
### chunk number 12: 
###################################################
summary(simgen)


###################################################
### chunk number 13: 
###################################################
save(simgen, file="simgen.RData")


###################################################
### chunk number 14: 
###################################################
testmat <- meandistance.matrix(simgen)
pca <- cmdscale(testmat)
plot(pca[,1], pca[,2], col=rep(c("red", "green", "blue"), each=100),
     main = "PCA with Bruvo distance")


###################################################
### chunk number 15: 
###################################################
testmat2 <- meandistance.matrix(simgen, distmetric=Lynch.distance,
                                progress=FALSE)
pca2 <- cmdscale(testmat2)
plot(pca2[,1], pca2[,2], col=rep(c("red", "green", "blue"), each=100),
     main = "PCA with Lynch distance")


###################################################
### chunk number 16: 
###################################################
simgen2 <- deleteSamples(simgen, c("B59", "C30"))
simgen2 <- deleteLoci(simgen2, "loc2")
summary(simgen2)


###################################################
### chunk number 17: 
###################################################
samToUse <- Samples(simgen2, populations=c("PopA", "PopB"), ploidies=4)
exclude <- c("A50", "A78", "B25", "B60", "B81")
samToUse <- samToUse[!samToUse %in% exclude]
samToUse


###################################################
### chunk number 18: 
###################################################
summary(simgen2[samToUse, "loc1"])


###################################################
### chunk number 19: 
###################################################
testmat3 <- meandistance.matrix(simgen2, samples = samToUse,
                                distmetric = Lynch.distance,
                                progress= FALSE)
pca3 <- cmdscale(testmat3)
plot(pca3[,1], pca3[,2], col=c("red", "blue")[PopInfo(simgen2)[samToUse]])


###################################################
### chunk number 20: 
###################################################
simfreq <- deSilvaFreq(simgen, self = 0.1, initNull = 0.01,
                       samples = Samples(simgen, ploidies = 4))
simfreq
simFst <- calcFst(simfreq)
simFst
simFst12 <- calcFst(simfreq, loci=c("loc1", "loc2"))
simFst12


###################################################
### chunk number 21: 
###################################################
write.Structure(simgen, ploidy = 4, file="simgenStruct.txt")


###################################################
### chunk number 22: 
###################################################
showClass("genambig")


###################################################
### chunk number 23: 
###################################################
mysamples <- c("indA", "indB", "indC", "indD", "indE", "indF")
myloci <- c("loc1", "loc2", "loc3")
mydataset <- new("genambig", samples=mysamples, loci=myloci)


###################################################
### chunk number 24: 
###################################################
mydataset


###################################################
### chunk number 25: 
###################################################
Loci(mydataset)
Loci(mydataset) <- c("L1", "L2", "L3")
Loci(mydataset)
Samples(mydataset)
Samples(mydataset)[3] <- "indC1"
Samples(mydataset)
PopNames(mydataset) <- c("Yosemite", "Sequoia")
PopInfo(mydataset) <- c(1,1,1,2,2,2)
PopInfo(mydataset)
PopNum(mydataset, "Yosemite")
PopNum(mydataset, "Sequoia") <- 3
PopNames(mydataset)
PopInfo(mydataset)
Ploidies(mydataset) <- c(4,4,4,4,4,6)
Ploidies(mydataset)


###################################################
### chunk number 26: 
###################################################
Ploidies(mydataset)["indC1"] <- 6
Ploidies(mydataset)
Usatnts(mydataset) <- c(2,2,2)
Usatnts(mydataset)
Description(mydataset) <- "Tutorial, part 2."
Description(mydataset)
Genotypes(mydataset, loci="L1") <- list(c(122, 124, 128), c(124,126),
                     c(120,126,128,130), c(122,124,130), c(128,130,132),
                     c(126,130))
Genotype(mydataset, "indB", "L3") <- c(150, 154, 160)
Genotypes(mydataset)
Genotype(mydataset, "indD", "L1")
Missing(mydataset)
Missing(mydataset) <- -1
Genotypes(mydataset)


###################################################
### chunk number 27: 
###################################################
mydataset@Genotypes
mydataset@Genotypes[["indB","L1"]]


###################################################
### chunk number 28: 
###################################################
isMissing(mydataset, "indA", "L2")
isMissing(mydataset, "indA", "L1")
isMissing(mydataset)


###################################################
### chunk number 29: 
###################################################
moredata <- new("genambig", samples=c("indG", "indH"), loci=Loci(mydataset))
Usatnts(moredata) <- Usatnts(mydataset)
Description(moredata) <- Description(mydataset)
PopNames(moredata) <- "Kings Canyon"
PopInfo(moredata) <- c(1,1)
Ploidies(moredata) <- c(4,4)
Missing(moredata) <- Missing(mydataset)
Genotypes(moredata, loci="L1") <- list(c(126,130,136,138), c(124,126,128))
mydataset2 <- merge(mydataset, moredata)
mydataset2


###################################################
### chunk number 30: 
###################################################
simgenB <- genambig.to.genbinary(simgen)
Genotypes(simgenB, samples=paste("A", 1:20, sep=""), loci="loc1")
PopInfo(simgenB)[Samples(simgenB, ploidies=2)]


###################################################
### chunk number 31: 
###################################################
write.table(Genotypes(simgenB), file="simBinaryData.txt")


###################################################
### chunk number 32: 
###################################################
GDdata <- read.GenoDive("genodiveExample.txt")
Structdata <- read.Structure("structureExample.txt", ploidy = 8)
Spagdata <- read.SPAGeDi("spagediExample.txt")


###################################################
### chunk number 33: 
###################################################
GMdata <- read.GeneMapper(c("GeneMapperCBA15.txt",
                            "GeneMapperCBA23.txt",
                            "GeneMapperCBA28.txt"))


###################################################
### chunk number 34: 
###################################################
domdata <- read.table("dominantExample.txt", header=TRUE,
                      sep="\t", row.names=1)


###################################################
### chunk number 35: 
###################################################
domdata
domdata <- as.matrix(domdata)
PAdata <- new("genbinary", samples=c("ind1", "ind2", "ind3"),
              loci=c("ABC1", "ABC2"))
Genotypes(PAdata) <- domdata


###################################################
### chunk number 36: 
###################################################
PopInfo(PAdata) <- c(1,1,2)
PAdata <- genbinary.to.genambig(PAdata)


###################################################
### chunk number 37: 
###################################################
myexcol <- array(c(rep(0:1, each=150), seq(0.1, 30, by=0.1)), dim=c(300,2),
                 dimnames = list(Samples(simgen), c("PopFlag", "Something")))
myexcol[1:10,]
write.Structure(simgen, ploidy=4, file="simgenStruct2.txt",
                writepopinfo = FALSE, extracols = myexcol,
                missingout = -1)


###################################################
### chunk number 38: 
###################################################
write.GenoDive(simgen, file="simgenGD.txt")


###################################################
### chunk number 39: 
###################################################
write.SPAGeDi(simgen, file="simgenSpag.txt")


###################################################
### chunk number 40: 
###################################################
write.GeneMapper(simgen, file="simgenGM.txt")


###################################################
### chunk number 41: 
###################################################
simgenPA <- genambig.to.genbinary(simgen)
write.table(Genotypes(simgenPA), file="simgenPA.txt", quote=FALSE,
            sep = ",")


###################################################
### chunk number 42: 
###################################################
write.table(data.frame(Ploidies(simgen), row.names=Samples(simgen)),
            file="simgenPloidies.txt")


###################################################
### chunk number 43: 
###################################################
hist(as.vector(testmat))


###################################################
### chunk number 44: 
###################################################
hist(as.vector(testmat2))


###################################################
### chunk number 45: 
###################################################
write.table(testmat2, file="simgenDistMat.txt")


###################################################
### chunk number 46: 
###################################################
subsamples <- Samples(simgen, populations=1)
subsamples <- subsamples[!isMissing(simgen, subsamples, "loc1") &
                         !isMissing(simgen, subsamples, "loc2") &
                         !isMissing(simgen, subsamples, "loc3")]
Larray <- meandistance.matrix(simgen, samples=subsamples,
                              progress=FALSE,
                 distmetric=Lynch.distance, all.distances=TRUE)[[1]]
mdist1.2 <- meandist.from.array(Larray, loci=c("loc1","loc2"))
mdist2.3 <- meandist.from.array(Larray, loci=c("loc2","loc3"))
mdist1.3 <- meandist.from.array(Larray, loci=c("loc1","loc3"))


###################################################
### chunk number 47: 
###################################################
simFst
simfreqSimple <- simpleFreq(simgen, samples = Samples(simgen, ploidies=4))
simFstSimple <- calcFst(simfreqSimple)
simFstSimple


###################################################
### chunk number 48: 
###################################################
write.freq.SPAGeDi(simfreq, usatnts=Usatnts(simgen), file="SPAGfreq.txt")


###################################################
### chunk number 49: 
###################################################
ATdata <- read.ATetra("ATetraExample.txt")
Tetdata <- read.Tetrasat("tetrasatExample.txt")


###################################################
### chunk number 50: 
###################################################
write.ATetra(simgen, samples=Samples(simgen, ploidies=4), file="simgenAT.txt")
write.Tetrasat(simgen, samples=Samples(simgen, ploidies=4),
               file="simgenTet.txt")


###################################################
### chunk number 51: 
###################################################
Present(simgenB) <- "P"
Absent(simgenB) <- 2
Missing(simgenB) <- 0
Genotypes(simgenB)[1:10, 1:6]


###################################################
### chunk number 52: 
###################################################
genmat <- Genotypes(simgenB)
dimnames(genmat)[[2]] <- paste("M", 1:dim(genmat)[2], sep="")
genmat[1:10, 1:10]


